#ifndef _HH_TESTUTILS
#define _HH_TESTUTILS
#include <string>
#include <vector>
/**
 * \file  testutils.hh   (C) 2011 Andrew E Page
 *
 * General testing utilities
 *
 */
namespace objectsaxparser {
  /**
   * Generate a random string from the characters in the sources
   *
   * @param len  length of the string to produce
   *
   * @param source1  source of chars for the first char(for applications where the starting letter
   *                   is restricted(e.g. routine names))
   * @param source2  source for chars for the remaining chars defaults to empty in which case
   *                 source1 chars will continue to be used
   */
  std::string generateRandomString(int len, const std::string& source1, const std::string& source2 = "") ;
  
  /**
   * Generate a random string that starts with a string in the given list selected at random, and 
   * then with chars from the source string 
   *
   * @param len length of the string to produce
   * @param collection of strings that form the prefix
   * @param source2   
   */
  std::string generateRandomString(int len, const std::vector<std::string>& strings,  const std::string& source2 = "") ;
  
}

#endif // _HH_TESTUTILS
